package com.starleague.battletech.unit;

public interface IBattletechUnitCriticalSlot
{
    // IBattletechUnitHitLocation getHitLocation();

    IBattletechUnitComponent getComponent();

    // boolean isReroll();

    boolean isHittable();

    boolean isHit();

    // boolean setHit() throws BattletechException; // false means re-roll. TODO: Beware of infinite re-roll
    // attempts
}

// interface ICriticalSlot// extends SerialObject
// {
// String getSlotName();
//
// /**
// * Is a re-roll required if a Critical Hit occurs on this?
// * @return
// */
// boolean IsReRoll();
//
// /**
// * Can this ICriticalSlotable be placed in the given i_hit_location_type
// * @return
// */
// // abstract boolean IsValidHitLocationTYPE(final HitLocation.TYPE i_hit_location_type);
//
// static interface SingleLocation extends ICriticalSlot // Uses slots in a single HitLocation
// {
// abstract int getNumCriticalSlots();
// // abstract boolean addToHitLocation(final HitLocation i_hit_location);
// }
// //
// //// static interface ArmAndShoulderOnly extends ICriticalSlot // Uses slots in different HitLocations
// //// {
// ////// abstract boolean addToHitLocations(final HitLocation... i_hit_locations);
// //// }
// //
// static interface Anywhere extends ICriticalSlot // Uses slots in different HitLocations
// {
// // abstract int getNumCriticalSlots();
// // abstract boolean addToHitLocations(final HitLocation... i_hit_locations);
// }
// }
